home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-04-22 | 23.5 KB | 694 lines | [TEXT/MPS ] |
- /*
- File: RlShell.h
-
- Contains: definition of RealShell class
-
- Owned by: Nick Pilch
-
- Copyright: © 1993 - 1996 by Apple Computer, Inc., all rights reserved.
-
- Change History (most recent first):
-
- <4> .03.1996 NP 1307182: Stuff for caching shell menu
- items.
- <3> .03.1996 NP 1304875,1317218: Fix can't-cancel problem
- on receipt of quit event.
- <2> 3/1/96 JP 1314798: Added param to OpenAnotherFile
- <57> 10/24/95 jpa 1293441: Beefed up error dialog &
- foreground/background detection.
- <56> 10/12/95 eeh 1287143: remove self param from
- FakePrintMenuEvent
- <55> 9/27/95 TÇ 1287399 GM: Cyberdog needs chance to
- cleanup before ODSession dies
- <54> 9/27/95 eeh 1284893: fix capitalization
- <53> 9/26/95 TÇ 1287296 GM:Refcount error and eventual
- crash saving across volumes
- <52> 9/20/95 TÇ 1284568 GM: Choosing cancel in Save As...
- dlg closes doc.
- <51> 9/12/95 JBS 1282526 Status message needed during "Save
- Doc to another volume"
- <50> 9/12/95 eeh 1253309: add fFailedPlugInName
- <49> 9/8/95 TÇ 1252120 FB1: New documents saved w/ StdFile
- & trashed if closed w/o saving
- <48> 9/8/95 TÇ Removed leftover obsolete comments.
- <47> 9/5/95 TÇ FBs: 1266428, 1274419, 1274421, 1274423,
- 1274429, 1274435 Fixed the Shell to handle
- multiple documents in a process. Needed for
- CyberDog.
- <46> 8/26/95 TÇ 1273606 FB: SemtIntf should delete _fHelper
- <45> 8/25/95 eeh 1263528: cleanup
- <44> 8/22/95 eeh 1263528: nuke fOptionKeyDownOnMenuBarClick,
- add param to HandleMenuCommand
- <43> 8/9/95 TJ jpa-Added friend struct NotEntry to class
- RealShell
- <42> 8/8/95 jpa Document synchronization [1259401]
- <41> 6/20/95 TÇ 1217754 BB: Delete Document command
- <40> 6/1/95 jpa Added message param to ExceptionAlert
- [1242839]
- <39> 5/7/95 TÇ 1155852 BB: String constants need to be
- moved to resource for Localization (mostly
- done)
- <38> 5/4/95 jpa Added fApp/TempLowMemNotified [1235657]
- <37> 4/29/95 TÇ 1241263 BB: ODPart::Externalize should
- initialize part name if the part name is
- empty (did New document case)
- <36> 4/27/95 eeh 1240648: add ODDraft* param to
- AskUserWhereToPutIt and SaveACopyAs; added
- GetFrontDraft
- <35> 4/27/95 CC 1243813: Removed MacAppAlert; use ShowAlert
- in DlogUtil instead.
- <34> 4/24/95 eeh 1240662: add FakePrintMenuEvent
- <33> 4/15/95 TÇ #1216915 DR/BB:Trying to open a document
- that is already open causes an error.
- <32> 4/14/95 TÇ #1237984 RealShell::() UpdateMenus
- defaults part info menu item to wrong text
- <31> 4/13/95 CG #1221909: SaveACopy dialog respects Kinds
- pop-up.
- <30> 4/10/95 TÇ #1226675 Option-Close does not close all
- Windows
- <29> 4/7/95 eeh 1221297: added fPrintingOnly, isCurrent
- param to OpenDraft
- <28> 3/28/95 CG #1221901 BB: Added utility.
- <27> 3/15/95 eeh 1194180: removed parameter from
- CloseDraft()
- <26> 3/10/95 CC 1225050: Added DraftClosing(); added
- parameter to ExportClipboard().
- 1194180: Added parameter to CloseDraft()
- [for eeh].
- <25> 3/2/95 eeh 1225226: nuke InstallObjectAccessors
- <24> 2/20/95 TÇ #1210979 BB: 5-$ Bugs need to be evaluated
- and removed from Shell
- #1221861 BB: Incomplete AOCE support needs
- to be removed from OpenDoc
- <23> 2/16/95 TÇ #1210979 BB: 5-$ Bugs need to be evaluated
- in Shell. Fixed most of them, changed some
- to bug #'s.
- <22> 1/27/95 TJ NP: Added forward class decls.
- <21> 1/27/95 NP 1213948: Fix function prototypes.
- <20> 1/19/95 TÇ #1210210 BB: API: ODShellPlugin::Install
- should take ODDraft*
- <19> 1/9/95 NP 1194880: SemtIntf name changes.
- <18> 12/19/94 eeh 1192626: added DraftIsOpen and fOpenDrafts
- <17> 12/5/94 jpa Catch CFM errors opening new docs [1158966]
- <16> 11/30/94 RR #1188078 Use FSSpec instead of ODFileSpec
- <15> 11/17/94 CG (for TÇ) 1191912: Removed menu separator
- between Mail and Page Setup.
- <14> 10/27/94 RR #1192168 Added CheckMenuBar to reinstall
- base menu bar when no part has the menu
- focus. Added fShellHasFocus
- <13> 10/13/94 NP 1189812: Changed routines to pascal
- conventions because they are SIHelper
- callbacks.
- <12> 10/7/94 TÇ #1187826 Document Info functionality
- <11> 9/26/94 TÇ #1188679 Save A Copy As Stationery
- <10> 9/16/94 eeh #1186754: add kXMPMenuMail enum.
- <9> 9/15/94 TÇ #1183572 implement OpenDoc Shell PlugIns
- <8> 9/9/94 jpa Fixed missing-prototype probs [1185658]
- <7> 9/8/94 eeh #1185443: change params to OpenAnotherFile
- <6> 9/2/94 eeh allow storage of mailer docs in
- uniquely-named folders in tmp items folder:
- 1150934
- <5> 8/29/94 TÇ #1183553 Need to reduce usage of ODFileSpec
- in RlShell
- <4> 8/19/94 TÇ #1159233 Remove references to j3di
- <3> 8/1/94 TÇ #1155849
- <2> 7/13/94 TÇ removed some XMPs
- <1> 6/27/94 TÇ first checked in
- <0> 6/16/94 SV SOMverted
- <49> 4/18/94 TÇ #1144379 Stationery model & generation have
- been fixed to enable dragging & dropping of
- stationery onto open documents.
- <48> 4/7/94 TÇ fixed #1155956
- <47> 3/31/94 eeh bug #1154688: add GetUserFile (may remove
- later...)
- <46> 3/25/94 MB Symantec ASLM fixes. #1150864
- <45> 3/25/94 eeh Removed InstallEventHandlers()
- <44> 3/24/94 TÇ (no bug# yet) Cleaned & removed fIsNew
- flag, SaveAs() code, and someother #ifdef
- TO_BE_DELETD stuff
- <43> 3/24/94 eeh bug# 1151750: added GetDocument
- <42> 3/16/94 eeh bug #1149649: added params to
- OpenAnotherFile
- <41> 3/15/94 MB Changes to support SCpp/ASLM builds,
- #1150864.
- <40> 3/10/94 eeh bug #1149649: declare ForwardMail() and
- ReplyToMail()
- <39> 2/24/94 TÇ fix #1145435. Save and Revert to Saved
- menu items are now enabled properly (only
- when there are changes to a draft)
- brand new documents which have never been
- saved are deleted when closed. cleaned up
- a few more comments.
- <38> 2/15/94 TÇ fix #1144029 and some cleanup
- <37> 2/4/94 TÇ fixes to compile with PPC Universal headers
- <36> 2/2/94 TÇ added CreateUntitledContainer
- <35> 1/31/94 NP Changed parameter to coercion handler to
- conform to new interface.
- <34> 1/25/94 NP TÇ: changed OpenDraft and CloseDraft to
- take a ODDraft* parameter. NP: Added
- GetAEError and SetAEError and associated
- field.
- <33> 1/20/94 RR Removed WasAOCEMailerEvent
- <32> 1/19/94 eeh added Open Document menu item
- <31> 1/18/94 TÇ use kOpenDocShellSignature
- <30> 1/17/94 NP Semantic Events callbacks API changes.
- <29> 1/14/94 TÇ removed obsolete InitializeDraftProperties
- <28> 1/13/94 eeh integrate AOCEObj
- <27> 1/13/94 NP Private members for Undo implementation.
- <26> 1/11/94 eeh make mailer menu heierarchical
- <25> 1/10/94 NP Added private member function.
- <24> 12/15/93 TÇ fix kXMPMenuShowPartsBin = 14
- <23> 12/13/93 RR Added kXMPMenuAbout
- <22> 12/9/93 eeh Save and CloseWindow made
- private-by-convention, params added to
- DoesUserCancelClose and SaveAs for
- scripting
- <21> 12/3/93 CC Added ExportClipboard() method.
- <20> 11/18/93 CG Added #define kDocShellCreator for 'j3di'
- <19> 11/16/93 RR Completely reorganized event handling
- <18> 11/15/93 eeh added ManageMailerSave and SaveMailerHere
- <17> 10/27/93 eeh added self param to GetFSSpecFromLetter
- <16> 10/20/93 eeh added CoerceToFSSpec() and
- fAlreadyInCoercion.
- <15> 10/19/93 CG Changed destructor from ODVMethod to
- virtual for ASLM building.
- <14> 10/18/93 TÇ reduced external entrypoints to RealShell
- object to one (used to have Initialize()
- and Run(), now all you do is go())
- <13> 10/18/93 CG Added ASLM support for RealShell.
- <12> 10/12/93 eeh More changes for mailer support
- <11> 10/7/93 eeh Various changes related to adding Mailer
- support, with more to come.
- <10> 9/29/93 TÇ added SaveDraft() to do
- fWindowState->Externalize(fDraft); and
- fDraft->Externalize();
- <9> 9/24/93 TÇ added ODMenuBar* fMenuBar
- <8> 9/22/93 NP Integrate Semantic Events into the
- DocShell.
- <7> 9/15/93 TÇ added new methods for Error Handling
- <6> 8/27/93 TÇ added new CreateTempContainer
- <5> 8/24/93 TÇ removed obsolete function definitions,
- added more functions for HI changes
- <4> 8/20/93 TÇ integrated with Prototype Window, Layout,
- Imaging and parts
- <3> 8/19/93 TÇ integration
- <10> 7/21/93 TÇ with help from CG: defined methods for OAPP & QUIT AppleEvents
- <1> 7/6/93 TÇ first checked in
- <8> 7/6/93 TÇ _SHELLM_
- <7> 7/6/93 TÇ define Draft Interface
- <6> 5/24/93 TÇ finish defining methods for open, save,
- close, save as, and revert
- <5> 4/30/93 TÇ define methods for Open
- <4> 4/29/93 TÇ change names of includefiles
- <3> 4/28/93 TÇ define more methods for the Event Loop
- <2> 4/27/93 TÇ defined Initialization, Main Event Loop.
- made RealShell a root class
- <1> 4/14/93 TÇ first checked in
-
- To Do:
- In Progress:
-
- */
-
-
- #ifndef _RLSHELL_
- #define _RLSHELL_
-
- #ifndef _PLFMDEF_
- #include "PlfmDef.h"
- #endif
-
- #ifndef _ODTYPES_
- #include <ODTypes.h>
- #endif
-
- #ifndef SOM_ODDraft_xh
- #include <Draft.xh> /* for ODDraftPermissions */
- #endif
-
- #ifndef _PLFMFILE_
- #include "PlfmFile.h"
- #endif
-
- #ifndef _LINKLIST_
- #include <LinkList.h>
- #endif
-
- #ifndef __PROCESSES__
- #include <Processes.h> /* For ProcessSerialNumber */
- #endif
-
- #ifndef __DIALOGS__
- #include <Dialogs.h>
- #endif
-
-
- //==============================================================================
- // Theory of Operation
- //==============================================================================
-
- /*
- The Shell contains all code which interfaces a particular platform's
- user interface with the OpenDoc parts underneath.
- Each document is run in its own process.
-
- */
-
- //==============================================================================
- // Constants
- //==============================================================================
-
-
- //-------------------------------------------------------------------------------------
- // Menus
- //-------------------------------------------------------------------------------------
-
- #define kSHLMenuAbout 1
-
- enum {
- kSHLMenuNew = 1
- ,kSHLMenuOpen
- ,kSHLMenuOpenDocument
- ,kSHLMenuInsert
- ,kSHLMenuClose
- ,kSHLMenuDeleteDocument
-
- // menu separator
-
- ,kSHLMenuSave = 8
- ,kSHLMenuSaveACopy
- ,kSHLMenuRevert
- ,kSHLMenuDraft
- ,kSHLMenuDocumentInfo
-
- // menu separator
-
- ,kSHLMenuPageSetup = 14
- ,kSHLMenuPrint
- };
-
-
- enum {
- kSHLMenuUndo = 1
- ,kSHLMenuRedo
-
- // menu separator
-
- ,kSHLMenuCut = 4
- ,kSHLMenuCopy
- ,kSHLMenuPaste
- ,kSHLMenuPasteAs
- ,kSHLMenuClear
- ,kSHLMenuSelectAll
-
- // menu separator
-
- ,kSHLMenuGetPartInfo= 11
- ,kSHLMenuPreferences
-
- // menu separator
-
- ,kSHLMenuViewAsWin = 14
- };
-
-
- //-------------------------------------------------------------------------------------
- // Dialogs
- //-------------------------------------------------------------------------------------
-
- const ODSShort kSHLscOK = 1; //OK button
- const ODSShort kSHLscCancel = 2; //Cancel button
- const ODSShort kSHLscNo = 3; //no, don't save
-
- //==============================================================================
- // Scalar Types
- //==============================================================================
-
- typedef ODSShort ODResNumber;
-
- typedef struct {
- UserItemUPP iconUPP;
- ODBoolean makeStationery;
- ODSession* session;
- ODType changeKind;
- ODType partKind;
- ODTypeList* kindList;
- } SaveCopyStruct;
-
- //==============================================================================
- // Classes defined in this interface
- //==============================================================================
-
- class RealShell;
-
- //==============================================================================
- // Classes used by this interface
- //==============================================================================
-
- class ODSession;
- class ODDispatcher;
- class ODWindowState;
- class ODArbitrator;
- class ODDraft;
- class ODDocument;
- class ODContainer;
- class ODMenuBar;
- class ShellSI;
- class SIHelper;
- class PlatformFile;
- class StandardFileReply;
- class OrderedCollection;
- class ODAppleEvent;
- class ODDesc;
-
- //==============================================================================
- // Functions defined in this interface
- //==============================================================================
-
- void CreateNewUntitledFile(PlatformFile* newFile); // newFile is in/out
- // Will be moved to DocUtils. - TÇ
-
- //==============================================================================
- // RealShell
- //==============================================================================
-
- class RealShell
- {
- public:
-
- //-------------------------------------------------------------------------------------
- // Constructor/Destructor/Initialize/Shutdown/Go
- //-------------------------------------------------------------------------------------
-
- RealShell();
- ODNVMethod ~RealShell();
-
- ODNVMethod void Initialize();
- ODNVMethod void InstallMenuBar();
- ODNVMethod void InstallShellPlugIns(ODDraft* draft);
- ODNVMethod void ScanShellPlugInsFldr(ODSShort fldrVRefNum, ODSLong fldrDirID,
- ODDraft* draft);
-
- ODNVMethod void go();
-
- //-------------------------------------------------------------------------------------
- // public for AppleEvent handlers, but private by convention
- //-------------------------------------------------------------------------------------
-
- //-------------------------------------------------------------------------------------
- // Getters/Setters
-
- ODNVMethod ODSession* GetSession() {return fSession;}
- ODNVMethod Environment* GetEV() {return fEV;}
-
- ODNVMethod void SetAEError(ODError error);
-
- //-------------------------------------------------------------------------------------
- // Close
-
- ODNVMethod void CloseWindow(ODPlatformWindow window,
- DescType saveOptions);
-
- ODNVMethod ODBoolean CloseDocument(ODDocument* document,
- DescType saveOptions);
-
-
- //-------------------------------------------------------------------------------------
- // Save
-
- ODNVMethod ODBoolean Save(ODDocument* document, ODBoolean isClosing = kODFalse);
- // if it was a first save, and the user canceled, then it returns kODFalse.
- // The second parameter is needed because if it is a first save in response to the (Save) button from the
- // DontSave/Save/Cancel dialog, and if the user is saving to a different volume, then there is no need to
- // reopen the document after closing and moving it to the new volume.
-
- protected:
-
-
- //-------------------------------------------------------------------------------------
- // Event Dispatching
- //-------------------------------------------------------------------------------------
-
- ODNVMethod void DispatchEvent(ODEventData* event);
- ODNVMethod void DispatchMouseDownEvent(ODEventData* event);
- ODNVMethod void DispatchMenuEvent(ODEventData* event);
- ODNVMethod void DispatchKeyDownEvent(ODEventData* event);
-
- ODNVMethod void HandleOSEvent(ODEventData* event);
- ODNVMethod void HandleHighLevelEvent(ODEventData* event);
-
- ODNVMethod void HandleMenuCommand(ODSLong menuResult, ODEventData* event);
- ODNVMethod void HandleMouseDownInWindow(WindowPtr window, ODSShort partcode, ODEventData* event);
- ODNVMethod void HandleMouseDownInCloseBox(WindowPtr window, ODEventData* event);
- ODNVMethod void HandleMouseDownInDragRegion(WindowPtr window, ODEventData* event);
- ODNVMethod void HandleMouseDownInGrowBox(WindowPtr window, ODEventData* event);
- ODNVMethod void HandleMouseDownInZoomBox(WindowPtr window, ODSShort partcode, ODEventData* event);
-
- ODNVMethod void ExportClipboard(ODBoolean canAlert);
-
- ODNVMethod ODBoolean CheckFileLocation( );
- ODNVMethod void NotifyDragToTrash( ODULong );
- ODNVMethod void CloseTrashedDocument(ODDocument* document, DescType saveOptions );
-
- //-------------------------------------------------------------------------
- // Update menus
-
- struct MenuItemInfo
- {
- Str255 text;
- short cmdChar;
- short iconID;
- short markChar;
- Style textStyle;
- };
-
- ODNVMethod void CheckMenuBar();
- ODNVMethod void UpdateMenus();
- ODNVMethod void UpdateUndoMenus();
- ODNVMethod void SaveMenuItem(MenuHandle menu, short itemNum,
- MenuItemInfo* info);
- ODNVMethod void RestoreMenuItem(MenuHandle menu, short itemNum,
- MenuItemInfo* info);
- ODNVMethod void ResetUndoText(MenuHandle editMenu);
- ODNVMethod void ResetRedoText(MenuHandle editMenu);
-
- //-------------------------------------------------------------------------------------
- // Memory Management
- //-------------------------------------------------------------------------------------
-
- ODNVMethod void InitMemory( );
-
- ODNVMethod ODSize Purge(ODSize size);
-
- ODNVMethod ODSize IsFreeMemoryLow( ODBoolean &appIsLow, ODBoolean &tempIsLow );
-
- ODNVMethod ODBoolean CheckFreeMemory( ); // Returns false if low on memory
-
- ODNVMethod void LowMemoryAlert( ODBoolean tempMem );
-
- //-------------------------------------------------------------------------------------
- // Shell User Functionality
- //-------------------------------------------------------------------------------------
-
- //-------------------------------------------------------------------------
- // New (document)
-
- ODNVMethod PlatformFile* New();
- // implements the menu command
- // create a new document with the same part as the root part of the active window
-
- //-------------------------------------------------------------------------
- // Open (document)
-
- ODNVMethod void OpenFile(PlatformFile* file);
-
- ODNVMethod void OpenAnotherFile(PlatformFile* file,
- AEDescList* replyInfo = kODNULL,
- ODBoolean deleteOnFailure = kODFalse,
- ODBoolean unsavedDoc = kODFalse);
-
- ODNVMethod void OpenStdFile();
-
- //-------------------------------------------------------------------------
- // Close (window/document)
-
- ODNVMethod ODBoolean DoesUserCancelClose(ODDocument* document, DescType saveOptions);
-
- //-------------------------------------------------------------------------
- // Delete (document)
-
- ODNVMethod void DeleteDocument(ODDocument* document);
-
- //-------------------------------------------------------------------------
- // Save (document)
-
- ODNVMethod void ShowSaveDiffVolDialog( );
- ODNVMethod void CloseSaveDiffVolDialog( );
-
-
- ODNVMethod ODBoolean AskUserWhereToPutIt(
- ODDraft* whichDraft, Str255 defaultName,
- Str255 msg, StandardFileReply* reply );
-
- ODNVMethod void SaveACopy(ODDraft* draft);
-
- //-------------------------------------------------------------------------
- // Revert (document)
-
- ODNVMethod void Revert(ODDocument* document);
-
- ODNVMethod ODBoolean DoesUserOKRevert(ODDocument* document);
-
- //-------------------------------------------------------------------------
- // Drafts (of document)
-
- ODNVMethod void Drafts(ODDocument* document);
-
- //-------------------------------------------------------------------------
- // Info
-
- ODNVMethod void DocumentInfo(ODDocument* document);
- // ODNVMethod void PartInfo();
-
- //-------------------------------------------------------------------------------------
- // Error Handling & Notification
- //-------------------------------------------------------------------------------------
-
- ODNVMethod void ExceptionAlert(ODError exceptionCode, const char message[]);
-
- ODNVMethod ODBoolean SearchErrTable( ODError value,
- ODResNumber resourceID,
- Str255 str);
-
- ODNVMethod ODBoolean LookupErrString(ODError value,
- ODResNumber resourceID,
- Str255 str);
-
- ODNVMethod ODError GetAEError();
-
-
- // Pointer to notifier method which returns void and takes a refCon:
- typedef void (RealShell::*Notifier) ( ODULong refCon );
-
- ODNVMethod void Notify( RealShell::Notifier, ODULong refCon =0 );
-
- ODNVMethod void CancelNotification( RealShell::Notifier );
-
- ODNVMethod void ShowPendingNotifications( );
-
- ODNVMethod void LaunchFailed( ODSLong launchErr,
- const ProcessSerialNumber &psn,
- Str255 appName, Str255 libName );
-
- //-------------------------------------------------------------------------------------
- // Apple Event Support
- //-------------------------------------------------------------------------------------
-
- ODNVMethod void InitAE();
-
- ODNVMethod void FakePrintMenuEvent();
-
- static pascal ODError HandleOpenAppEvent(ODPart* thePart,
- ODAppleEvent* message,
- ODAppleEvent* reply,
- ODSLong refCon);
-
- static pascal ODError HandleOpenPrintDocsEvent( ODPart* thePart,
- ODAppleEvent* message,
- ODAppleEvent* reply,
- ODSLong refCon);
-
- static pascal ODError HandleQuitEvent( ODPart* thePart,
- ODAppleEvent* message,
- ODAppleEvent* reply,
- ODSLong refCon);
-
- static pascal ODError HandleLaunchFailedEvent( ODPart* thePart,
- ODAppleEvent* message,
- ODAppleEvent* reply,
- ODSLong refCon);
-
- static pascal ODError HandleODActivate( ODPart* thePart,
- ODAppleEvent* message,
- ODAppleEvent* reply,
- ODSLong handlerRefcon );
-
- static pascal ODError CoerceToFSSpec(ODPart* thePart,
- ODDesc* theAEDesc,
- DescType toType,
- ODSLong handlerRefCon,
- ODDesc* result);
-
-
- //-------------------------------------------------------------------------------------
- // Utilities for setting/getting file names ($opt: can probably inline these)
- //-------------------------------------------------------------------------------------
-
- void GetUserFileName(char* fileName, ODULong maxLen);
-
- //-------------------------------------------------------------------------------------
- // Utilities to be moved to DocUtils
- //-------------------------------------------------------------------------------------
-
- ODNVMethod void CreateUniqueTmpFolderForFile(FSSpec* result,
- Str63 fileName);
-
- ODNVMethod void CreateUntitledContainer(ODDocument** documentPtr,
- ODContainer** containerPtr, PlatformFile* newFile, ODName* fileNameSeed = kODNULL);
- // *documentPtr, *containerPtr are filled in
- // newFile is in/out
-
- ODNVMethod void CreateTitledContainer(ODDocument** documentPtr,
- ODContainer** containerPtr, PlatformFile* newFile, char* newName);
- // *documentPtr, *containerPtr are filled in
- // newFile is in/out
-
- //-------------------------------------------------------------------------------------
- // private fields
- //-------------------------------------------------------------------------------------
-
- //-------------------------------------------------------------
- // session fields
-
- Environment* fEV;
- ODSession* fSession;
- ODDispatcher* fDispatcher;
- ODWindowState* fWindowState;
- SIHelper* fSIHelper;
- short fUniqueNameSeed;
-
- MenuItemInfo fDefaultUndoMenuItem;
- MenuItemInfo fDefaultRedoMenuItem;
- MenuItemInfo fDefaultAboutMenuItem;
- MenuItemInfo fDefaultPrefsMenuItem;
-
- //-------------------------------------------------------------
- // transitional state fields
-
- ODBoolean fOptionKeyDownOnMenuBarClick;
- ODBoolean fShellHasMenuFocus;
- ODBoolean fAlreadyInCoercion;
- ODError fErrorFromOpenEvents;
- ODBoolean fProcessIsActive;
-
- ProcessSerialNumber fLastNewDocPSN;
- ODFileSpec fLastNewDocSpec;
- SaveCopyStruct* fSaveCopyData;
- DialogPtr fSaveDiffVolDialog;
-
- //-------------------------------------------------------------
- // error/notification fields
-
- ODBoolean fLowMemNotified;
-
- Str63 fFailedPlugInName;
-
- LinkedList fNotifiers;
-
- friend struct NotEntry; // It has a Notifier as a member
- };
-
-
-
- #endif // _RLSHELL_
-